A number of systems and programs are offered on the market for the design, the engineering and the manufacturing of objects. These objects can be two-dimensional or three-dimensional objects.
CAD is an acronym for Computer-Aided Design, e.g. it relates to software solutions for designing an object. CAE is an acronym for Computer-Aided Engineering, e.g. it relates to software solutions for simulating the physical behavior of a future product. CAM is an acronym for Computer-Aided Manufacturing, e.g. it relates to software solutions for defining manufacturing processes and operations. In such computer-aided design systems, the graphical user interface plays an important role as regards the efficiency of the technique. These techniques may be embedded within Product Lifecycle Management (PLM) systems. PLM refers to a business strategy that helps companies to share product data, apply common processes, and leverage corporate knowledge for the development of products from conception to the end of their life, across the concept of extended enterprise.
Computer programs are widely available for creating drawings and other documents with graphic content. These programs incorporate a variety of tools to aid a user in creating and manipulating objects, such as graphics, icons, geometric shapes, images, and blocks of text, through a computer display. In CAD solution such as the one provided by DASSAULT SYSTEMES under the trademark CATIA, the user is always interacting with the geometries, thanks to manipulators. Manipulators are also known as handle-based tool (or handle). A user can perform an operation on a larger graphical object by directing a pointer to a manipulator (or handle) and clicking, dragging, or otherwise gesturing with the pointer. The interactions are performed on a display device using a pointer that is under the control of a mouse, trackball, or stylus. The interactions can also be performed directly on a touch sensitive display device using a pointer, e.g. a finger, or a stylus. The manipulators are immersive objects, which allow the user to trigger a function such as deforming, moving, and transforming the geometries directly in the scene wherein the object to modify is located. The manipulators can include one or more miniature graphics or icons that are displayed in association with a larger graphical object. The manipulators can be represented by squares, spheres, meshes, or any other complex shapes such as robots, axis, and so on.
Several ways to interact with those manipulators exist. The action to interact with a manipulator is also called picking the manipulator. The first way to interact with a manipulator is “a pixel precision” solution wherein the active area of the manipulator is exactly the same than the visible representation of the manipulator. The active area is the visible zone on the screen in which the user can trigger a function applied on an object. This is a WYSIWYG (What You See Is What You Get) behavior. This is illustrated on FIG. 4 that shows, on the left, a cursor that is not precisely on the manipulator (the double-headed arrow), and therefore, the manipulator is not active; on the right of FIG. 4, the cursor is on the manipulator, which is therefore active.
The second way to interact with a manipulator relies on an “extended picking area”. The picking area represents the surface on which it is possible to send an event to the manipulator. This is illustrated on FIG. 5 that shows a manipulator (the double headed arrow) and its picking area (the circle): on the left, the cursor is not on the picking area, and the manipulator is not active; on the right of the figure, the cursor is on the picking area and the manipulator is active. The picking area is the zone of the screen in which the user can trigger a function applied on an object. The visible representation of the manipulator is extended by an active invisible area (the picking area), and the user can pick the manipulator even at a distance from the object. The picking area can be visible or not.
The third way to interact with a manipulator relies on the “manipulate always and everywhere” solution in which the whole screen is meant to interact with the manipulator. Therefore, selection is no more possible. FIG. 6 shows a graphical user interface in which the cursor is always picking the area as the picking area takes the whole screen.
The above-mentioned ways to interact with a manipulator come with their drawbacks. The pixel precision solution comes with lack of productivity and ergonomics: indeed, the user must precisely pick the visible representation (which can be only one or two pixel thick) which breaks his workflow. The extended picking area solution comes with picking issues when several manipulators are overlapping on the screen. There is no way to differentiate which one must be activated. As a result, unpredictable result could appear. This is illustrated on FIG. 7 wherein a cursor is inside both picking areas of two manipulators (the double-headed arrow and the square). This solution is therefore not satisfactory when several manipulators are overlapping. The always and everywhere solution is not compatible with other technologies, as the invisible representation takes the focus on the whole screen. As a result, this is useful when only one manipulator is required, but cannot be used with several independent ones.
Within this context, there is still a need for an improved selection of a manipulator displayed in a graphical user interface among a plurality of overlapping manipulators.